home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DViewer.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  10.8 KB  |  264 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DViewer.p
  3.  
  4.      Contains:    MacOS Viewer Controller Interface File.                                
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.1
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1995-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QD3DViewer;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QD3DVIEWER__}
  28. {$SETC __QD3DVIEWER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QD3DViewerIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QD3D__}
  35. {$I QD3D.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __QD3DGROUP__}
  38. {$I QD3DGroup.p}
  39. {$ENDC}
  40.  
  41. {$IFC TARGET_OS_MAC }
  42. {$IFC UNDEFINED __EVENTS__}
  43. {$I Events.p}
  44. {$ENDC}
  45. {$IFC UNDEFINED __TYPES__}
  46. {$I Types.p}
  47. {$ENDC}
  48. {$IFC UNDEFINED __QUICKDRAW__}
  49. {$I Quickdraw.p}
  50. {$ENDC}
  51. {$ENDC}  {TARGET_OS_MAC}
  52.  
  53.  
  54. {$PUSH}
  55. {$ALIGN POWER}
  56. {$LibExport+}
  57.  
  58. {$IFC TARGET_OS_MAC }
  59.  
  60. TYPE
  61.     TQ3ViewerObject                        = Ptr;
  62.     TQ3ViewerDrawingCallbackMethod = ProcPtr;  { FUNCTION TQ3ViewerDrawingCallbackMethod(theViewer: TQ3ViewerObject; data: UNIV Ptr): OSErr; C; }
  63.  
  64.  
  65. CONST
  66.     kQ3ViewerShowBadge            = $01;
  67.     kQ3ViewerActive                = $02;
  68.     kQ3ViewerControllerVisible    = $04;
  69.     kQ3ViewerDrawFrame            = $08;
  70.     kQ3ViewerDraggingOff        = $10;
  71.     kQ3ViewerButtonCamera        = $20;
  72.     kQ3ViewerButtonTruck        = $40;
  73.     kQ3ViewerButtonOrbit        = $80;
  74.     kQ3ViewerButtonZoom            = $0100;
  75.     kQ3ViewerButtonDolly        = $0200;
  76.     kQ3ViewerButtonReset        = $0400;
  77.     kQ3ViewerOutputTextMode        = $0800;
  78.     kQ3ViewerDragMode            = $1000;
  79.     kQ3ViewerDrawGrowBox        = $2000;
  80.     kQ3ViewerDrawDragBorder        = $4000;
  81.     kQ3ViewerDraggingInOff        = $8000;
  82.     kQ3ViewerDraggingOutOff        = $00010000;
  83.     kQ3ViewerDefault            = $80000000;
  84.  
  85.     kQ3ViewerEmpty                = 0;
  86.     kQ3ViewerHasModel            = $01;
  87.     kQ3ViewerHasUndo            = $02;
  88.  
  89.  
  90. TYPE
  91.     TQ3ViewerCameraView         = LONGINT;
  92. CONST
  93.     kQ3ViewerCameraRestore        = {TQ3ViewerCameraView}0;
  94.     kQ3ViewerCameraFit            = {TQ3ViewerCameraView}1;
  95.     kQ3ViewerCameraFront        = {TQ3ViewerCameraView}2;
  96.     kQ3ViewerCameraBack            = {TQ3ViewerCameraView}3;
  97.     kQ3ViewerCameraLeft            = {TQ3ViewerCameraView}4;
  98.     kQ3ViewerCameraRight        = {TQ3ViewerCameraView}5;
  99.     kQ3ViewerCameraTop            = {TQ3ViewerCameraView}6;
  100.     kQ3ViewerCameraBottom        = {TQ3ViewerCameraView}7;
  101.  
  102.  
  103.     gestaltQD3DViewer            = 'q3vc';
  104.     gestaltQD3DViewerNotPresent    = 0;
  105.     gestaltQD3DViewerAvailable    = 1;
  106.  
  107.  
  108. {*****************************************************************************
  109.  **                                                                             **
  110.  **        Return viewer version number                                         **
  111.  **                                                                             **
  112.  ****************************************************************************}
  113. FUNCTION Q3ViewerGetVersion(VAR majorRevision: LONGINT; VAR minorRevision: LONGINT): OSErr; C;
  114.  
  115.  
  116. {*****************************************************************************
  117.  **                                                                             **
  118.  **        Return viewer release version number                                 **
  119.  **        (in 'vers' format - e.g. 0x01518000 ==> 1.5.1 release)                 **
  120.  **                                                                             **
  121.  ****************************************************************************}
  122. FUNCTION Q3ViewerGetReleaseVersion(VAR releaseRevision: LONGINT): OSErr; C;
  123.  
  124. {*****************************************************************************
  125.  **                                                                             **
  126.  **                        Creation and destruction                             **
  127.  **                Note that this is not a QuickDraw 3D object                     **
  128.  **                                                                             **
  129.  ****************************************************************************}
  130. FUNCTION Q3ViewerNew(port: CGrafPtr; VAR rect: Rect; flags: LONGINT): TQ3ViewerObject; C;
  131. FUNCTION Q3ViewerDispose(theViewer: TQ3ViewerObject): OSErr; C;
  132. {*****************************************************************************
  133.  **                                                                             **
  134.  **                    Functions to attach data to a viewer                     **
  135.  **                                                                             **
  136.  ****************************************************************************}
  137. FUNCTION Q3ViewerUseFile(theViewer: TQ3ViewerObject; refNum: LONGINT): OSErr; C;
  138. FUNCTION Q3ViewerUseData(theViewer: TQ3ViewerObject; data: UNIV Ptr; size: LONGINT): OSErr; C;
  139. {*****************************************************************************
  140.  **                                                                             **
  141.  **        Functions to write data out from the Viewer                             **
  142.  **                                                                             **
  143.  ****************************************************************************}
  144. FUNCTION Q3ViewerWriteFile(theViewer: TQ3ViewerObject; refNum: LONGINT): OSErr; C;
  145. FUNCTION Q3ViewerWriteData(theViewer: TQ3ViewerObject; data: Handle): LONGINT; C;
  146. {*****************************************************************************
  147.  **                                                                             **
  148.  **        Use this function to force the Viewer to re-draw                     **
  149.  **                                                                             **
  150.  ****************************************************************************}
  151. FUNCTION Q3ViewerDraw(theViewer: TQ3ViewerObject): OSErr; C;
  152. FUNCTION Q3ViewerDrawContent(theViewer: TQ3ViewerObject): OSErr; C;
  153. FUNCTION Q3ViewerDrawControlStrip(theViewer: TQ3ViewerObject): OSErr; C;
  154. {*****************************************************************************
  155.  **                                                                             **
  156.  **        Function used by the Viewer to filter and handle events                 **
  157.  **                                                                             **
  158.  ****************************************************************************}
  159. FUNCTION Q3ViewerEvent(theViewer: TQ3ViewerObject; VAR evt: EventRecord): BOOLEAN; C;
  160. {*****************************************************************************
  161.  **                                                                             **
  162.  **        This function returns a PICT of the contents of the                  **
  163.  **        Viewer's window.  The application should dispose the PICT.             **
  164.  **                                                                             **
  165.  ****************************************************************************}
  166. FUNCTION Q3ViewerGetPict(theViewer: TQ3ViewerObject): PicHandle; C;
  167. {*****************************************************************************
  168.  **                                                                             **
  169.  **                        Calls for dealing with Buttons                         **
  170.  **                                                                             **
  171.  ****************************************************************************}
  172. FUNCTION Q3ViewerGetButtonRect(theViewer: TQ3ViewerObject; button: LONGINT; VAR rect: Rect): OSErr; C;
  173. FUNCTION Q3ViewerGetCurrentButton(theViewer: TQ3ViewerObject): LONGINT; C;
  174. FUNCTION Q3ViewerSetCurrentButton(theViewer: TQ3ViewerObject; button: LONGINT): OSErr; C;
  175. {*****************************************************************************
  176.  **                                                                             **
  177.  **        Functions to set/get the group to be displayed by the Viewer.         **
  178.  **                                                                             **
  179.  ****************************************************************************}
  180. FUNCTION Q3ViewerUseGroup(theViewer: TQ3ViewerObject; group: TQ3GroupObject): OSErr; C;
  181. FUNCTION Q3ViewerGetGroup(theViewer: TQ3ViewerObject): TQ3GroupObject; C;
  182. {*****************************************************************************
  183.  **                                                                             **
  184.  **        Functions to set/get the color used to clear the window                 **
  185.  **                                                                             **
  186.  ****************************************************************************}
  187. FUNCTION Q3ViewerSetBackgroundColor(theViewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): OSErr; C;
  188. FUNCTION Q3ViewerGetBackgroundColor(theViewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): OSErr; C;
  189. {*****************************************************************************
  190.  **                                                                             **
  191.  **        Getting/Setting a Viewer's View object.  Disposal is needed.         **
  192.  **                                                                             **
  193.  ****************************************************************************}
  194. FUNCTION Q3ViewerGetView(theViewer: TQ3ViewerObject): TQ3ViewObject; C;
  195. FUNCTION Q3ViewerRestoreView(theViewer: TQ3ViewerObject): OSErr; C;
  196. {*****************************************************************************
  197.  **                                                                             **
  198.  **        Calls for setting/getting viewer flags                                 **
  199.  **                                                                             **
  200.  ****************************************************************************}
  201. FUNCTION Q3ViewerSetFlags(theViewer: TQ3ViewerObject; flags: LONGINT): OSErr; C;
  202. FUNCTION Q3ViewerGetFlags(theViewer: TQ3ViewerObject): LONGINT; C;
  203. {*****************************************************************************
  204.  **                                                                             **
  205.  **        Calls related to bounds/dimensions.  Bounds is the size of              **
  206.  **        the window.  Dimensions can either be the Rect from the ViewHints     **
  207.  **        or the current dimensions of the window (if you do a Set).             **
  208.  **                                                                             **
  209.  ****************************************************************************}
  210. FUNCTION Q3ViewerSetBounds(theViewer: TQ3ViewerObject; VAR bounds: Rect): OSErr; C;
  211. FUNCTION Q3ViewerGetBounds(theViewer: TQ3ViewerObject; VAR bounds: Rect): OSErr; C;
  212. FUNCTION Q3ViewerSetDimension(theViewer: TQ3ViewerObject; width: LONGINT; height: LONGINT): OSErr; C;
  213. FUNCTION Q3ViewerGetDimension(theViewer: TQ3ViewerObject; VAR width: LONGINT; VAR height: LONGINT): OSErr; C;
  214. { 1.1 }
  215. FUNCTION Q3ViewerGetMinimumDimension(theViewer: TQ3ViewerObject; VAR width: LONGINT; VAR height: LONGINT): OSErr; C;
  216. {*****************************************************************************
  217.  **                                                                             **
  218.  **                            Port related calls                                 **
  219.  **                                                                             **
  220.  ****************************************************************************}
  221. FUNCTION Q3ViewerSetPort(theViewer: TQ3ViewerObject; port: CGrafPtr): OSErr; C;
  222. FUNCTION Q3ViewerGetPort(theViewer: TQ3ViewerObject): CGrafPtr; C;
  223. {*****************************************************************************
  224.  **                                                                             **
  225.  **        Adjust Cursor should be called from idle loop to allow the Viewer     **
  226.  **        to change the cursor according to the cursor position/object under     **
  227.  **        the cursor.                                                             **
  228.  **                                                                             **
  229.  ****************************************************************************}
  230. FUNCTION Q3ViewerAdjustCursor(theViewer: TQ3ViewerObject; VAR pt: Point): BOOLEAN; C;
  231. FUNCTION Q3ViewerCursorChanged(theViewer: TQ3ViewerObject): OSErr; C;
  232.  
  233. {*****************************************************************************
  234.  **                                                                             **
  235.  **        Returns the state of the viewer.  See the constant defined at the     **
  236.  **        top of this file.                                                     **
  237.  **                                                                             **
  238.  ****************************************************************************}
  239. FUNCTION Q3ViewerGetState(theViewer: TQ3ViewerObject): LONGINT; C;
  240. {*****************************************************************************
  241.  **                                                                             **
  242.  **                            Clipboard utilities                                 **
  243.  **                                                                             **
  244.  ****************************************************************************}
  245. FUNCTION Q3ViewerClear(theViewer: TQ3ViewerObject): OSErr; C;
  246. FUNCTION Q3ViewerCut(theViewer: TQ3ViewerObject): OSErr; C;
  247. FUNCTION Q3ViewerCopy(theViewer: TQ3ViewerObject): OSErr; C;
  248. FUNCTION Q3ViewerPaste(theViewer: TQ3ViewerObject): OSErr; C;
  249. {$ENDC}  {TARGET_OS_MAC}
  250.  
  251.  
  252.  
  253.  
  254. {$ALIGN RESET}
  255. {$POP}
  256.  
  257. {$SETC UsingIncludes := QD3DViewerIncludes}
  258.  
  259. {$ENDC} {__QD3DVIEWER__}
  260.  
  261. {$IFC NOT UsingIncludes}
  262.  END.
  263. {$ENDC}
  264.